package com.henghong.CouponDemo.service.impl;

import com.henghong.CouponDemo.mapper.CouponMapper;
import com.henghong.CouponDemo.service.SearchService;
import com.henghong.CouponDemo.vo.SearchCouponVO;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Collections;
import java.util.List;

/**
 * reated by bishukai on 2025/02/17
 */
@Service
public class SearchServiceImpl implements SearchService {

    @Autowired
    private CouponMapper couponMapper;

    /**
     * 全て検索
     *
     * @param couponNo
     * @param CCID
     * @return
     */
    @Override
    public List<SearchCouponVO> searchAll(String couponNo, Integer CCID) {

        if (CCID != null && StringUtils.isBlank(couponNo)) {
            // CCIDが入力された場合　⇒　「発行対象クーポン情報」テーブルからデータ抽出
            List<SearchCouponVO> list = couponMapper.selectByCCID(CCID);
            return list;

        } else if (StringUtils.isNotBlank(couponNo) && CCID == null) {
            // クーポン番号が入力された場合　⇒　「クーポン番号情報」テーブルからデータ抽出
            List<SearchCouponVO> list = couponMapper.selectByCouponNo(couponNo);
            return list;

        } else if (CCID != null && StringUtils.isNotBlank(couponNo)) {
            // 両方が入力された場合は、AND条件で検索する
            List<SearchCouponVO> list = couponMapper.selectByCCIDAndCouponNo(CCID, couponNo);
            return list;

        }
        return null;
    }

    /**
     * 利用可能検索
     *
     * @param couponNo
     * @param CCID
     * @return
     */
    @Override
    public List<SearchCouponVO> searchAvailable(String couponNo, Integer CCID) {
        // 查询数据
        List<SearchCouponVO> list = couponMapper.selectAvailable(couponNo, CCID);

        return list;
    }

    /**
     * 受注検索
     *
     * @param orderNo
     * @return
     */
    @Override
    public List<SearchCouponVO> searchOrder(String orderNo) {
        // 查询数据
        List<SearchCouponVO> list = couponMapper.selectByOrderNo(orderNo);

        return list;
    }

}
